Membership 運算子🔍
接下來要介紹的是 Python 中非常好用的成員運算子(in 和 not in)!這兩個運算子可以幫助我們快速檢查某個元素是否存在於序列中,超級方便的💪~
🎯基本用法
讓我們從最簡單的列表開始:
print('1. 列表(List)中的成員運算子')
fruits = ["蘋果", "香蕉", "橘子", "葡萄"]
# in 運算子
if "蘋果" in fruits:
print("有蘋果在水果清單中")
# 說明:檢查「蘋果」是否在 fruits 列表中
# 結果:會印出訊息,因為「蘋果」確實在列表中
# not in 運算子
if "西瓜" not in fruits:
print("沒有西瓜在清單中")
# 說明:檢查「西瓜」是否不在 fruits 列表中
# 結果:會印出訊息,因為「西瓜」不在列表中
在不同資料類型中的應用
2. 字串(String)中的成員運算子
email = "[email protected]"
# 檢查字串是否包含特定字元
if "@" in email:
print("這是有效的email格式")
# 說明:檢查 email 是否包含 @ 符號
# 檢查子字串
if ".com" in email:
print("這是一個.com網域的信箱")
# 說明:檢查 email 是否包含 .com 字串
3. 元組(Tuple)中的成員運算子
coordinates = (10, 20, 30, 40, 50)
if 30 in coordinates:
print("找到座標點 30")
# 說明:檢查數字 30 是否在座標元組中
4. 集合(Set)中的成員運算子
permitted_roles = {"admin", "editor", "viewer"}
user_role = "editor"
if user_role in permitted_roles:
print("使用者擁有編輯權限")
# 說明:檢查使用者角色是否在允許的角色集合中
⚡️進階應用範例
1. 字典(Dictionary)中的成員運算子
user_info = {
"name": "小明",
"age": 25,
"city": "台北"
}
# 檢查鍵(key)是否存在
if "name" in user_info:
print("找到使用者名稱")
# 說明:在字典中,in 運算子預設檢查鍵值
# 檢查值(value)是否存在
if "台北" in user_info.values():
print("找到台北市")
# 說明:使用 .values() 方法來檢查字典的值
2. 多重資料結構中的檢查
students = [
{"name": "小明", "scores": [80, 90, 85]},
{"name": "小華", "scores": [85, 95, 88]},
]
# 巢狀結構中的檢查
for student in students:
if 90 in student["scores"]:
print(f"{student['name']}有考到90分以上")
# 說明:在巢狀結構中使用成員運算子檢查
實用技巧與注意事項
1. 大小寫敏感度
names = ["Alice", "Bob", "Charlie"]
if "alice" not in names: # 注意:這裡會是 True
print("找不到 alice")
# 說明:成員運算子區分大小寫
2. 效能考量
large_list = list(range(10000))
lookup_set = set(large_list) # 轉換成集合
# 在大型資料中使用成員運算子
number = 9999
if number in lookup_set: # 使用集合比使用列表快
print("找到數字")
# 說明:對於大量資料,使用集合進行成員檢查效能較佳
💡 實用小技巧
使用成員運算子時,以下幾點要特別記住:
- 不同的資料型別中,in 的行為可能會不太一樣,要特別注意
- 在字典中使用 in 時,預設是檢查鍵(key)而不是值(value)
- 記得區分大小寫!這點很容易被忽略
- 如果要處理大量資料,建議使用集合(Set)來提升效能
- 可以搭配其他運算子使用,讓程式更有彈性